package com.rabbiter.cm.domain;

import java.io.Serializable;
import java.util.Objects;

/**
 * 该类用于表示电影与电影类别之间的多对多关联关系。
 * 每个电影可以属于多个类别，每个类别也可以包含多部电影。
 */
public class SysMovieToCategory implements Serializable {

    /**
     * 序列化版本唯一标识符，确保类的版本一致性。
     */
    private static final Long serialVersionUID = 1L;

    /**
     * 电影的唯一标识 ID。
     */
    private Long movieId;

    /**
     * 电影类别的唯一标识 ID。
     */
    private Long movieCategoryId;


    /**
     * 默认构造函数，用于创建一个空的电影-类别关联对象。
     */
    public SysMovieToCategory() {
    }

    /**
     * 带参数的构造函数，用于创建一个具有指定电影和类别 ID 的关联对象。
     *
     * @param movieId         电影的唯一标识 ID
     * @param movieCategoryId 类别的唯一标识 ID
     */
    public SysMovieToCategory(Long movieId, Long movieCategoryId) {
        this.movieId = movieId;
        this.movieCategoryId = movieCategoryId;
    }

    /**
     * 获取当前关联记录中的电影 ID。
     *
     * @return 返回电影 ID
     */
    public Long getMovieId() {
        return movieId;
    }

    /**
     * 设置当前关联记录中的电影 ID。
     *
     * @param movieId 需要设置的电影 ID
     */
    public void setMovieId(Long movieId) {
        this.movieId = movieId;
    }

    /**
     * 获取当前关联记录中的电影类别 ID。
     *
     * @return 返回电影类别 ID
     */
    public Long getMovieCategoryId() {
        return movieCategoryId;
    }

    /**
     * 设置当前关联记录中的电影类别 ID。
     *
     * @param movieCategoryId 需要设置的电影类别 ID
     */
    public void setMovieCategoryId(Long movieCategoryId) {
        this.movieCategoryId = movieCategoryId;
    }

    /**
     * 判断当前对象是否与另一个对象相等。
     * 根据电影 ID 和电影类别 ID 来判断两个对象是否相同。
     *
     * @param o 要比较的对象
     * @return 如果对象相等则返回 true，否则返回 false
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        SysMovieToCategory that = (SysMovieToCategory) o;
        return Objects.equals(movieId, that.movieId) && Objects.equals(movieCategoryId, that.movieCategoryId);
    }

    /**
     * 生成基于电影 ID 和电影类别 ID 的哈希码。
     *
     * @return 返回哈希码值
     */
    @Override
    public int hashCode() {
        return Objects.hash(movieId, movieCategoryId);
    }

    /**
     * 返回当前对象的字符串表示，用于调试和日志输出。
     *
     * @return 包含电影 ID 和电影类别 ID 的字符串
     */
    @Override
    public String toString() {
        return "SysMovieToCategory{" +
                "movieId=" + movieId +
                ", movieCategoryId=" + movieCategoryId +
                '}';
    }
}
package com.rabbiter.cm.domain;

import java.io.Serializable;
import java.util.Objects;

/**
 * 存储电影与电影类别的多对多联系
 */
public class SysMovieToCategory implements Serializable {

    private static final Long serialVersionUID = 1L;

    private Long movieId;

    private Long movieCategoryId;


    public SysMovieToCategory() {
    }

    public SysMovieToCategory(Long movieId, Long movieCategoryId) {
        this.movieId = movieId;
        this.movieCategoryId = movieCategoryId;
    }

    public Long getMovieId() {
        return movieId;
    }

    public void setMovieId(Long movieId) {
        this.movieId = movieId;
    }

    public Long getMovieCategoryId() {
        return movieCategoryId;
    }

    public void setMovieCategoryId(Long movieCategoryId) {
        this.movieCategoryId = movieCategoryId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        SysMovieToCategory that = (SysMovieToCategory) o;
        return Objects.equals(movieId, that.movieId) && Objects.equals(movieCategoryId, that.movieCategoryId);
    }

    @Override
    public int hashCode() {
        return Objects.hash(movieId, movieCategoryId);
    }

    @Override
    public String toString() {
        return "SysMovieToCategory{" +
                "movieId=" + movieId +
                ", movieCategoryId=" + movieCategoryId +
                '}';
    }
}
